Function at 0x434900
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x49a8e8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2d4
push ebx
push ebp
push esi
push edi
mov esi, ecx
push 5
push 0x4ae760
lea ecx, [esp + 0x40]
mov dword [esp + 0x60], esi
call fcn.0046ebc0
xor ebx, ebx
push 5
push 0x4ae758
lea ecx, [esp + 0x44]
mov dword [esp + 0x2f4], ebx
call fcn.0046ebc0
push 5
push 0x4ae750
lea ecx, [esp + 0x38]
mov byte [esp + 0x2f4], 1
call fcn.0046ebc0
push 5
push 0x4ae864
lea ecx, [esp + 0x4c]
mov edi, 2
mov byte [esp + 0x2f4], 2
call fcn.0046ebc0
push 5
push 0x4ae85c
lea ecx, [esp + 0x50]
mov byte [esp + 0x2f4], 3
call fcn.0046ebc0
lea ecx, [esp + 0x20]
mov byte [esp + 0x2ec], 4
call fcn.0046eb20
lea ecx, [esp + 0x28]
mov byte [esp + 0x2ec], 5
call fcn.0046eb20
mov al, byte [esp + 0x57]
mov dword [esp + 0x14], ebx
mov byte [esp + 0x10], al
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov eax, 6
mov ebp, 0x14
mov edx, 0x16
mov ecx, 0x18
mov byte [esp + 0x2ec], 7
mov dword [esp + 0x114], ebx
mov dword [esp + 0x118], edi
mov dword [esp + 0x11c], 4
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], 8
mov dword [esp + 0x128], 0xa
mov dword [esp + 0x12c], 0xc
mov dword [esp + 0x130], 0xe
mov dword [esp + 0x134], 0x10
mov dword [esp + 0x138], 0x12
mov dword [esp + 0x13c], ebp
mov dword [esp + 0x140], edx
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], 0x1a
mov dword [esp + 0x14c], 0x1c
mov dword [esp + 0x150], 0x1e
mov dword [esp + 0x154], 0x20
mov dword [esp + 0x158], 0x22
mov dword [esp + 0x15c], 0x24
mov dword [esp + 0x160], 0x26
mov dword [esp + 0x164], 0x28
mov dword [esp + 0x168], 0x2a
mov dword [esp + 0x16c], 0x2c
mov dword [esp + 0x170], 0x2e
mov dword [esp + 0x174], 0x30
mov dword [esp + 0xc0], edi
mov dword [esp + 0x100], ebp
mov dword [esp + 0x108], edx
mov dword [esp + 0x110], ecx
mov ebp, 0x4ae850
mov edi, 0x4ae84c
mov edx, 0x4ae848
mov ecx, 0x4ae844
mov dword [esp + 0x178], 0x32
mov dword [esp + 0x17c], 0x34
mov dword [esp + 0x180], 0x36
mov dword [esp + 0x184], 0x38
mov dword [esp + 0x188], 0x3c
mov dword [esp + 0x18c], 0x40
mov dword [esp + 0x190], 0x42
mov dword [esp + 0x194], 0x44
mov dword [esp + 0x198], 0x46
mov dword [esp + 0x19c], 0x48
mov dword [esp + 0x1a0], 0x4a
mov dword [esp + 0x1a4], 0x4c
mov dword [esp + 0x1a8], 0x4e
mov dword [esp + 0x1ac], 0x50
mov dword [esp + 0x1b0], 0x52
mov dword [esp + 0x1b4], 0x56
mov dword [esp + 0x1b8], 0x58
mov dword [esp + 0x1bc], 0x5a
mov dword [esp + 0x1c0], 0x5c
mov dword [esp + 0x1c4], 0x5e
mov dword [esp + 0x1c8], 0x60
mov dword [esp + 0x1cc], 0x62
mov dword [esp + 0x1d0], 0x64
mov dword [esp + 0x1d4], 0x66
mov dword [esp + 0x1d8], 0x68
mov dword [esp + 0x1dc], 0x6a
mov dword [esp + 0x1e0], 0x6c
mov dword [esp + 0x1e4], 0x84
mov dword [esp + 0x1e8], 0x86
mov dword [esp + 0x1ec], 0xb0
mov dword [esp + 0x1f0], 0xb2
mov dword [esp + 0x1f4], 0xdc
mov dword [esp + 0x1f8], 0xde
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], 1
mov dword [esp + 0xc4], 3
mov dword [esp + 0xc8], 4
mov dword [esp + 0xcc], 5
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], 7
mov dword [esp + 0xd8], 8
mov dword [esp + 0xdc], 9
mov dword [esp + 0xe0], 0xa
mov dword [esp + 0xe4], 0xb
mov dword [esp + 0xe8], 0xc
mov dword [esp + 0xec], 0xd
mov dword [esp + 0xf0], 0xe
mov dword [esp + 0xf4], 0xf
mov dword [esp + 0xf8], 0x10
mov dword [esp + 0xfc], 0x11
mov dword [esp + 0x104], 0x15
mov dword [esp + 0x10c], 0x17
mov dword [esp + 0x1fc], 0x4ae83c
mov dword [esp + 0x200], 0x4ae858
mov dword [esp + 0x204], 0x4ae838
mov dword [esp + 0x208], 0x4ae834
mov dword [esp + 0x20c], 0x4ae830
mov dword [esp + 0x210], 0x4ae82c
mov dword [esp + 0x214], 0x4ae828
mov dword [esp + 0x218], 0x4ae824
mov dword [esp + 0x21c], 0x4ae820
mov dword [esp + 0x220], 0x4ae81c
mov dword [esp + 0x224], 0x4ae818
mov dword [esp + 0x228], 0x4ae814
mov dword [esp + 0x22c], 0x4ae810
mov dword [esp + 0x230], 0x4ae80c
mov dword [esp + 0x234], 0x4ae808
mov dword [esp + 0x238], str.SRPNMLKJHGFEDCAZYXVUTB
mov dword [esp + 0x23c], 0x4ae854
mov dword [esp + 0x240], ebp
mov dword [esp + 0x244], edi
mov dword [esp + 0x248], edx
mov dword [esp + 0x24c], ecx
push 0x4b63c8
mov dword [esp + 0xb0], edx
push ecx
mov dword [esp + 0xb8], ecx
lea edx, [esp + 0x40]
mov eax, 0x4ae840
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
mov dword [esp + 0x25c], eax
mov dword [esp + 0x260], 0x4ae800
mov dword [esp + 0x264], 0x4ae7fc
mov dword [esp + 0x268], 0x4ae7f8
mov dword [esp + 0x26c], 0x4ae7f4
mov dword [esp + 0x270], 0x4ae7f0
mov dword [esp + 0x274], 0x4ae7ec
mov dword [esp + 0x278], 0x4ae7e8
mov dword [esp + 0x27c], 0x4ae7e4
mov dword [esp + 0x280], 0x4ae7e0
mov dword [esp + 0x284], 0x4ae7dc
mov dword [esp + 0x288], 0x4ae7d8
mov dword [esp + 0x28c], 0x4ae7d4
mov dword [esp + 0x290], 0x4ae7d0
mov dword [esp + 0x294], 0x4ae7cc
mov dword [esp + 0x298], 0x4ae7c8
mov dword [esp + 0x29c], 0x4ae7c4
mov dword [esp + 0x2a0], 0x4ae7c0
mov dword [esp + 0x2a4], 0x4ae7bc
mov dword [esp + 0x2a8], 0x4ae7b8
mov dword [esp + 0x2ac], 0x4ae7b4
mov dword [esp + 0x2b0], 0x4ae7b0
mov dword [esp + 0x2b4], 0x4ae7ac
mov dword [esp + 0x2b8], 0x4ae7a8
mov dword [esp + 0x2bc], 0x4ae7a4
mov dword [esp + 0x2c0], 0x4ae7a0
mov dword [esp + 0x2c4], 0x4ae79c
mov dword [esp + 0x2c8], 0x4ae798
mov dword [esp + 0x2cc], 0x4ae794
mov dword [esp + 0x2d0], 0x4ae790
mov dword [esp + 0x2d4], 0x4ae78c
mov dword [esp + 0x2d8], 0x4ae788
mov dword [esp + 0x2dc], 0x4ae784
mov dword [esp + 0x2e0], 0x4ae780
mov dword [esp + 0x2e4], 0x4ae77c
mov dword [esp + 0x2e8], 0x4ae778
mov dword [esp + 0x2ec], 0x4ae774
mov dword [esp + 0x68], 0x4ae83c
mov dword [esp + 0x6c], 0x4ae858
mov dword [esp + 0x70], 0x4ae838
mov dword [esp + 0x74], 0x4ae834
mov dword [esp + 0x78], 0x4ae830
mov dword [esp + 0x7c], 0x4ae82c
mov dword [esp + 0x80], 0x4ae828
mov dword [esp + 0x84], 0x4ae824
mov dword [esp + 0x88], 0x4ae820
mov dword [esp + 0x8c], 0x4ae81c
mov dword [esp + 0x90], 0x4ae818
mov dword [esp + 0x94], 0x4ae814
mov dword [esp + 0x98], 0x4ae810
mov dword [esp + 0x9c], 0x4ae80c
mov dword [esp + 0xa0], 0x4ae808
mov dword [esp + 0xa4], str.SRPNMLKJHGFEDCAZYXVUTB
mov dword [esp + 0xa8], 0x4ae854
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], 0x4ae768
mov dword [esp + 0xc0], eax
mov word [esi + 4], bx
call fcn.0046eb30
mov ecx, dword [0x4b63dc]
call fcn.004104a0
cmp ax, bx
jne 0x435172
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x4350e5
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x4350dc
cmp al, 0xff
je 0x4350dc
dec al
mov byte [ecx], al
jmp 0x4350e5
push ecx
call fcn.0048d500
add esp, 4
lea ecx, [esp + 0x28]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x2ec], 5
call fcn.0046ec60
lea ecx, [esp + 0x20]
mov byte [esp + 0x2ec], 4
call fcn.0046ec60
lea ecx, [esp + 0x48]
mov byte [esp + 0x2ec], 3
call fcn.0046ec60
lea ecx, [esp + 0x44]
mov byte [esp + 0x2ec], 2
call fcn.0046ec60
lea ecx, [esp + 0x30]
mov byte [esp + 0x2ec], 1
call fcn.0046ec60
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2ec], bl
call fcn.0046ec60
lea ecx, [esp + 0x38]
mov dword [esp + 0x2ec], 0xffffffff
call fcn.0046ec60
xor ax, ax
jmp 0x43589c
or edi, 0xffffffff
cmp ax, di
jne 0x43529b
push 0x4b63c8
push ecx
lea eax, [esp + 0x38]
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
mov word [esi + 4], bx
call fcn.0046eb30
mov ecx, dword [0x4b63dc]
call fcn.004104a0
cmp ax, 1
jne 0x4352cc
push ebx
mov ecx, 0x4b63c8
call fcn.00401ba0
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.0046eb30
lea ecx, [esp + 0x24]
call fcn.0046ee50
lea ecx, [esp + 0x20]
call fcn.0046efe0
cmp ax, 0xf
jl 0x4352cc
xor eax, eax
mov dword [esp + 0x34], eax
xor ecx, ecx
add eax, 3
mov dword [esp + 0x4c], ecx
push eax
mov dword [esp + 0x54], ecx
mov word [esp + 0x58], cx
lea ecx, [esp + 0x24]
call fcn.0046ee40
and eax, 0xff
lea edx, [esp + 0x4c]
push eax
push 0x4ae70c
push edx
call fcn.0048dfde
lea edi, [esp + 0x58]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
mov eax, dword [0x4a0148]
mov edx, dword [esp + 0x18]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x43523f
call fcn.0048d50b
cmp esi, ebx
jbe 0x435283
mov ecx, dword [esp + 0x18]
push ebx
lea ebp, [ecx + esi]
lea ecx, [esp + 0x14]
push ebp
call fcn.0040aba0
test al, al
je 0x435283
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, esi
lea esi, [esp + 0x4c]
lea edi, [edx + eax]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], ebp
mov byte [eax + ebp], bl
mov eax, dword [esp + 0x34]
inc eax
cmp ax, 0xc
mov dword [esp + 0x34], eax
jl 0x4351e7
jmp 0x4356c7
push 0x4b63c8
push ecx
lea edx, [esp + 0x44]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
mov word [esi + 4], 1
call fcn.0046eb30
mov ecx, dword [0x4b63dc]
call fcn.004104a0
cmp ax, 1
je 0x43537a
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x4352f1
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x4352e8
cmp al, 0xff
je 0x4352e8
dec al
mov byte [ecx], al
jmp 0x4352f1
push ecx
call fcn.0048d500
add esp, 4
lea ecx, [esp + 0x28]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x2ec], 5
call fcn.0046ec60
lea ecx, [esp + 0x20]
mov byte [esp + 0x2ec], 4
call fcn.0046ec60
lea ecx, [esp + 0x48]
mov byte [esp + 0x2ec], 3
call fcn.0046ec60
lea ecx, [esp + 0x44]
mov byte [esp + 0x2ec], 2
call fcn.0046ec60
lea ecx, [esp + 0x30]
mov byte [esp + 0x2ec], 1
call fcn.0046ec60
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2ec], bl
call fcn.0046ec60
lea ecx, [esp + 0x38]
mov dword [esp + 0x2ec], edi
call fcn.0046ec60
xor ax, ax
jmp 0x43589c
push ebx
mov ecx, 0x4b63c8
call fcn.00401ba0
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.0046eb30
lea ecx, [esp + 0x2c]
call fcn.0046ee50
xor eax, eax
mov dword [esp + 0x34], eax
jmp 0x4353a7
mov eax, dword [esp + 0x34]
xor ecx, ecx
cmp ax, 4
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], ecx
mov word [esp + 0x54], cx
jge 0x4354a7
add eax, 3
lea ecx, [esp + 0x20]
push eax
call fcn.0046ee40
and eax, 0xff
lea edx, [esp + 0x4c]
push eax
push 0x4ae70c
push edx
call fcn.0048dfde
lea edi, [esp + 0x58]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
mov eax, dword [0x4a0148]
mov edx, dword [esp + 0x18]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x435409
call fcn.0048d50b
cmp esi, ebx
jbe 0x4356b4
mov ecx, dword [esp + 0x18]
lea ebp, [ecx + esi]
cmp ebp, 0xfffffffd
jbe 0x435422
call fcn.0048d50b
mov ecx, dword [esp + 0x14]
cmp ecx, ebx
je 0x43544d
mov al, byte [ecx - 1]
cmp al, bl
je 0x43544d
cmp al, 0xff
je 0x43544d
cmp ebp, ebx
jne 0x43546e
dec al
push ebx
mov byte [ecx - 1], al
lea ecx, [esp + 0x14]
call fcn.00401bb0
jmp 0x4356b4
cmp ebp, ebx
jne 0x435468
cmp ecx, ebx
je 0x4356b4
push ebx
lea ecx, [esp + 0x14]
call fcn.0040ab80
jmp 0x4356b4
cmp dword [esp + 0x1c], ebp
jae 0x43547c
push ebp
lea ecx, [esp + 0x14]
call fcn.00401ea0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
lea edi, [ecx + edx]
mov ecx, esi
mov eax, ecx
lea esi, [esp + 0x4c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ebp
mov byte [ecx + ebp], bl
jmp 0x4356b4
jne 0x4355b6
xor esi, esi
mov dword [esp + 0x2c], 0x3a
mov dword [esp + 0x40], esi
push 3
lea ecx, [esp + 0x2c]
call fcn.0046ee40
mov ecx, dword [esp + esi + 0x114]
and eax, 0xff
cmp eax, ecx
jne 0x435597
mov esi, dword [esp + esi + 0x1fc]
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
mov edx, dword [0x4a0148]
mov dword [esp + 0x24], esi
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [esp + 0x18]
sub edx, ecx
cmp edx, esi
ja 0x435508
call fcn.0048d50b
cmp esi, ebx
jbe 0x435597
mov eax, dword [esp + 0x18]
lea ebp, [eax + esi]
cmp ebp, 0xfffffffd
jbe 0x435521
call fcn.0048d50b
mov ecx, dword [esp + 0x14]
cmp ecx, ebx
je 0x435549
mov al, byte [ecx - 1]
cmp al, bl
je 0x435549
cmp al, 0xff
je 0x435549
cmp ebp, ebx
jne 0x435563
dec al
push ebx
mov byte [ecx - 1], al
lea ecx, [esp + 0x14]
call fcn.00401bb0
jmp 0x435597
cmp ebp, ebx
jne 0x43555d
cmp ecx, ebx
je 0x435597
push ebx
lea ecx, [esp + 0x14]
call fcn.0040ab80
jmp 0x435597
cmp dword [esp + 0x1c], ebp
jae 0x435571
push ebp
lea ecx, [esp + 0x14]
call fcn.00401ea0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
lea edi, [ecx + edx]
mov ecx, esi
mov esi, dword [esp + 0x24]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ebp
mov byte [ecx + ebp], bl
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x2c]
add esi, 4
dec eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x2c], eax
jne 0x4354bb
jmp 0x4356b4
xor esi, esi
mov dword [esp + 0x40], 0x17
mov dword [esp + 0x2c], esi
push 4
lea ecx, [esp + 0x2c]
call fcn.0046ee40
mov ecx, dword [esp + esi + 0xb8]
and eax, 0xff
cmp eax, ecx
jne 0x43569a
mov esi, dword [esp + esi + 0x5c]
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
mov edx, dword [0x4a0148]
mov dword [esp + 0x24], esi
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [esp + 0x18]
sub edx, ecx
cmp edx, esi
ja 0x43560e
call fcn.0048d50b
cmp esi, ebx
jbe 0x43569a
mov eax, dword [esp + 0x18]
lea ebp, [eax + esi]
cmp ebp, 0xfffffffd
jbe 0x435627
call fcn.0048d50b
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x435650
mov cl, byte [eax - 1]
cmp cl, bl
je 0x435650
cmp cl, 0xff
je 0x435650
cmp ebp, ebx
jne 0x435666
dec cl
push ebx
mov byte [eax - 1], cl
lea ecx, [esp + 0x14]
call fcn.00401bb0
jmp 0x43569a
cmp ebp, ebx
jne 0x435660
cmp eax, ebx
je 0x43569a
mov dword [esp + 0x18], ebx
mov byte [eax], bl
jmp 0x43569a
cmp dword [esp + 0x1c], ebp
jae 0x435674
push ebp
lea ecx, [esp + 0x14]
call fcn.00401ea0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
lea edi, [eax + ecx]
mov ecx, esi
mov esi, dword [esp + 0x24]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], ebp
mov byte [eax + ebp], bl
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
add esi, 4
dec eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x40], eax
jne 0x4355c4
mov eax, dword [esp + 0x34]
inc eax
cmp ax, 6
mov dword [esp + 0x34], eax
jl 0x4353a3
mov cl, byte [esp + 0x10]
sub esp, 0x10
mov ebp, esp
mov dword [esp + 0x34], esp
mov byte [ebp], cl
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov eax, dword [esp + 0x28]
mov esi, dword [0x4a0148]
mov edi, eax
cmp esi, edi
mov dword [esp + 0x3c], edi
jae 0x4356fa
mov edi, esi
mov dword [esp + 0x3c], edi
lea edx, [esp + 0x20]
cmp ebp, edx
jne 0x43575e
cmp edi, ebx
jbe 0x43570b
call fcn.0048d657
mov ecx, ebp
call fcn.0040af90
mov eax, dword [ebp + 8]
sub eax, edi
cmp eax, esi
jae 0x43571d
mov esi, eax
cmp esi, ebx
jbe 0x435750
mov ecx, dword [ebp + 4]
sub eax, esi
add ecx, edi
push eax
lea edx, [esi + ecx]
push edx
push ecx
call fcn.0048dca0
mov edi, dword [ebp + 8]
add esp, 0xc
sub edi, esi
mov ecx, ebp
push ebx
push edi
call fcn.0040aba0
test al, al
je 0x435750
push edi
mov ecx, ebp
call fcn.0040ab80
push ebx
push ebx
mov ecx, ebp
call fcn.00426890
jmp 0x4357e4
cmp edi, ebx
jbe 0x4357aa
cmp edi, eax
jne 0x4357aa
mov eax, dword [esp + 0x24]
cmp eax, ebx
jne 0x435773
mov eax, 0x4a014c
cmp byte [eax - 1], 0xfe
jae 0x4357aa
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov eax, dword [esp + 0x24]
cmp eax, ebx
jne 0x43578f
mov eax, 0x4a014c
mov dword [ebp + 4], eax
mov edx, dword [esp + 0x28]
mov dword [ebp + 8], edx
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 0xc], ecx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x4357e4
push 1
push edi
mov ecx, ebp
call fcn.0040aba0
test al, al
je 0x4357e4
mov esi, dword [esp + 0x24]
cmp esi, ebx
jne 0x4357c5
mov esi, 0x4a014c
mov eax, dword [esp + 0x3c]
mov edi, dword [ebp + 4]
mov ecx, eax
push eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.0040ab80
mov ecx, dword [esp + 0x68]
call fcn.00435dd0
mov esi, eax
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x435814
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x43580b
cmp al, 0xff
je 0x43580b
dec al
mov byte [ecx], al
jmp 0x435814
push ecx
call fcn.0048d500
add esp, 4
lea ecx, [esp + 0x28]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x2ec], 5
call fcn.0046ec60
lea ecx, [esp + 0x20]
mov byte [esp + 0x2ec], 4
call fcn.0046ec60
lea ecx, [esp + 0x48]
mov byte [esp + 0x2ec], 3
call fcn.0046ec60
lea ecx, [esp + 0x44]
mov byte [esp + 0x2ec], 2
call fcn.0046ec60
lea ecx, [esp + 0x30]
mov byte [esp + 0x2ec], 1
call fcn.0046ec60
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2ec], bl
call fcn.0046ec60
lea ecx, [esp + 0x38]
mov dword [esp + 0x2ec], 0xffffffff
call fcn.0046ec60
mov ax, si
mov ecx, dword [esp + 0x2e4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x2e0
ret