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

Disassembly:
sub esp, 0x894
mov ecx, dword [esp + 0x89c]
push ebx
push ebp
mov ebp, dword [esp + 0x8a8]
push esi
mov esi, dword [esp + 0x8a4]
push edi
push ecx
mov ebx, eax
mov eax, dword [0x4b9de8]
push 0x4ab1e4
push esi
mov dword [esp + 0x1c], eax
call fcn.004499de
add esp, 0xc
cmp ebx, 0x2d8
jb 0x412a39
cmp ebx, 0x2e4
jbe 0x412a61
add esi, 0xfffffffe
lea esp, [esp]
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x412a40
mov edi, esi
mov ecx, 0xa
mov esi, 0x4ab5e8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x8a8]
mov edx, dword [esp + 0x10]
add edx, 0xfffffffd
mov edi, edx
imul edi, edi, 0xa4
add edi, 0x4a5358
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edi
cmp ebx, 0x2d6
jae 0x412b44
cmp ebx, 6
jae 0x412b1f
mov edi, dword [0x4b9de8]
mov ecx, ebx
imul ecx, ecx, 0x1a8
add ecx, 0x4dee98
lea eax, [esp + 0xa4]
call fcn.00438040
lea edx, [esp + 0x1c4]
push edx
push edi
lea eax, [esp + 0xac]
call fcn.00437990
imul ebx, ebx, 0xdc
lea ecx, [edi - 3]
imul ecx, ecx, 0xa4
mov ebp, dword [ecx + 0x4a535c]
add ebp, dword [edi*4 + 0x4a4ce8]
push 0x88
lea edx, [esp + 0x1d0]
push edx
add ebp, ebx
push ebp
mov edi, esi
call fcn.0040c290
push 0x54
lea eax, [esp + 0x264]
push eax
add ebp, 0x88
push ebp
call fcn.0040c290
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x894
ret
xor edx, edx
mov ecx, 0x1e
lea eax, [ebx - 6]
div ecx
mov ecx, esi
inc eax
push eax
mov eax, edx
call fcn.00412400
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x894
ret
jne 0x412b8f
mov ecx, dword [0x4dea48]
push 1
mov edi, 0x473318
mov eax, 0xb
call fcn.004136a0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax*4 + 0x4a4cf4]
push 4
lea edx, [esp + 0x18]
push edx
mov edx, dword [esp + 0x2c]
add ecx, dword [edx]
mov edi, esi
push ecx
call fcn.0040c290
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x894
ret
cmp ebx, 0x2d7
jne 0x412fe6
mov eax, dword [esp + 0x8ac]
xor ecx, ecx
push eax
cmp byte [0x52bbe8], cl
je 0x412be8
mov ebx, dword [esp + 0x14]
cmp ebx, 3
setne cl
xor eax, eax
cmp ebx, 3
sete al
lea ecx, [ecx + ecx + 4]
push ecx
mov ecx, dword [edi + 0xc]
add ecx, dword [edx*4 + 0x4a4cf4]
lea eax, [eax + eax + 0xfff9]
push eax
push ecx
push esi
push 0x4ab610
push esi
call fcn.004499de
add esp, 0x1c
jmp 0x412c35
mov eax, dword [esp + 0x14]
cmp eax, 3
sete cl
lea ecx, [ecx + ecx + 0xfffa]
push ecx
xor ecx, ecx
cmp eax, 3
setne cl
lea ecx, [ecx + ecx + 4]
push ecx
xor ecx, ecx
cmp eax, 3
mov eax, dword [edi + 0xc]
sete cl
add eax, dword [edx*4 + 0x4a4cf4]
lea ecx, [ecx + ecx + 0xfff9]
push ecx
push eax
push esi
push 0x4ab770
push esi
call fcn.004499de
mov ebx, dword [esp + 0x30]
add esp, 0x20
xor al, al
mov byte [esp + 0x2a4], al
cmp byte [0x52bbe9], al
je 0x412c5f
cmp ebx, 4
jne 0x412c56
mov al, 3
mov byte [esp + 0x2a4], al
jmp 0x412c64
mov al, 1
mov byte [esp + 0x2a4], al
cmp ebx, 4
jne 0x412c76
cmp byte [0x52bbeb], 0
je 0x412c76
or al, 2
mov byte [esp + 0x2a4], al
cmp byte [0x52bbea], 0
je 0x412c91
cmp ebx, 4
jne 0x412c88
or al, bl
jmp 0x412c8a
or al, 2
mov byte [esp + 0x2a4], al
mov edx, dword [edi + 0x10]
movzx ecx, al
mov eax, dword [esp + 0x1c]
add edx, dword [eax*4 + 0x4a4cf4]
push ecx
push edx
push esi
push 0x4ab01c
push esi
call fcn.004499de
mov ebx, 8
add esp, 0x14
lea ebp, [esp + 0x2a4]
mov dword [esp + 0x24], 2
mov dword [esp + 0x28], 5
mov dword [esp + 0x2c], 4
mov dword [esp + 0x30], 6
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], 7
mov dword [esp + 0x3c], 0x1000
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], 0x2000
mov dword [esp + 0x48], 9
mov dword [esp + 0x4c], 0x4000
mov dword [esp + 0x50], 0xa
mov dword [esp + 0x54], 0x8000
mov dword [esp + 0x58], 0xb
mov dword [esp + 0x5c], 0x10000
mov dword [esp + 0x60], 0xc
mov dword [esp + 0x64], 0x20000
mov dword [esp + 0x68], 0xd
xor esi, esi
lea esp, [esp]
push 0x54
push 0
push ebp
call fcn.0044aeb0
mov edi, dword [esp + esi*8 + 0x30]
add esp, 0xc
xor eax, eax
mov cl, 1
test dword [eax*4 + 0x52a4a8], edi
je 0x412d76
mov edx, eax
shr edx, 3
or byte [edx + ebp], cl
inc eax
rol cl, 1
cmp eax, 0x289
jb 0x412d65
inc esi
add ebp, 0x54
cmp esi, 9
jb 0x412d50
xor eax, eax
cmp dword [0x4b9de8], 3
mov dword [esp + 0x84], 1
setne al
mov dword [esp + 0x88], 0xf
mov dword [esp + 0x8c], 2
mov dword [esp + 0x90], 0x10
mov dword [esp + 0x94], 4
mov dword [esp + 0x98], 0x11
mov dword [esp + 0x9c], ebx
lea eax, [eax + eax + 9]
mov dword [esp + 0xa0], 0x12
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
lea esp, [esp]
push eax
push 0
push ebp
call fcn.0044aeb0
add esp, 0xc
xor esi, esi
mov ebx, 0x4b9d50
mov eax, esi
call fcn.00413cd0
test eax, eax
je 0x412e79
xor edi, edi
cmp byte [esi + 0x4b9dac], 0
jbe 0x412e79
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*8 + 0x84]
mov dword [esp + 0x18], ecx
jmp 0x412e40
mov edx, dword [ebx]
mov al, byte [esp + 0x18]
test byte [edi + edx], al
je 0x412e6d
movzx ecx, byte [esi + 0x4a54b8]
movzx edx, byte [esi + 0x4a54a0]
add ecx, edi
mov eax, ecx
add edx, ebp
shr eax, 3
add eax, edx
and ecx, 7
mov dl, 1
shl dl, cl
or byte [eax], dl
movzx eax, byte [esi + 0x4b9dac]
inc edi
cmp edi, eax
jb 0x412e40
inc esi
add ebx, 4
cmp esi, 0x17
jb 0x412e13
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
inc ecx
add ebp, eax
mov dword [esp + 0x10], ecx
cmp ecx, 4
jb 0x412e00
push 0x1b0
push 0
push ebp
call fcn.0044aeb0
mov esi, 2
add esp, 0xc
mov eax, esi
xor edx, edx
jmp 0x412ec0
mov ecx, dword [edx + 0x52a4a8]
test cl, 1
je 0x412f99
test cl, 0x40
je 0x412ee7
lea ecx, [eax - 2]
and ecx, 7
mov bl, 1
shl bl, cl
lea edi, [esi - 2]
shr edi, 3
or byte [edi + ebp], bl
test byte [edx + 0x52a4a8], 0x20
je 0x412f03
lea ecx, [eax - 1]
and ecx, 7
mov bl, 1
shl bl, cl
lea edi, [esi - 1]
shr edi, 3
or byte [edi + ebp], bl
test byte [edx + 0x52a4a8], 0x80
je 0x412f1d
mov ecx, eax
and ecx, 7
mov bl, 1
shl bl, cl
mov edi, esi
shr edi, 3
or byte [edi + ebp], bl
test dword [edx + 0x52a4a8], 0x100
je 0x412f3c
lea ecx, [eax + 1]
and ecx, 7
mov bl, 1
shl bl, cl
lea edi, [esi + 1]
shr edi, 3
or byte [edi + ebp], bl
test dword [edx + 0x52a4a8], 0x200
je 0x412f5b
lea ecx, [eax + 2]
and ecx, 7
mov bl, 1
shl bl, cl
lea edi, [esi + 2]
shr edi, 3
or byte [edi + ebp], bl
test dword [edx + 0x52a4a8], 0x400
je 0x412f7a
lea ecx, [eax + 3]
and ecx, 7
mov bl, 1
shl bl, cl
lea edi, [esi + 3]
shr edi, 3
or byte [edi + ebp], bl
test dword [edx + 0x52a4a8], 0x800
je 0x412f99
lea ecx, [eax - 4]
and ecx, 7
mov bl, 1
shl bl, cl
lea edi, [esi + 4]
shr edi, 3
or byte [edi + ebp], bl
add edx, 4
dec eax
add esi, 7
cmp edx, 0x7b4
jb 0x412ec0
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x14]
mov edi, dword [esp + 0x8a8]
push 0x4c8
lea edx, [esp + 0x2a8]
push edx
mov edx, dword [esp + 0x24]
add ecx, dword [edx*4 + 0x4a4cf4]
push ecx
call fcn.0040c290
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x894
ret
lea eax, [ebx - 0x2d8]
cmp eax, 0xc
ja 0x413478
mov eax, 0x20249b4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov eax, 0x20249d0
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov eax, 0x2029ffc
mov ecx, 0x200a50c
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov eax, 0x202a028
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov eax, 0x2082a10
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov eax, 0x200a4b8
mov dword [esp + 0xec], ecx
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf8], ecx
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x100], ecx
mov ecx, 0x2082a28
mov dword [esp + 0xd4], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], ecx
mov ecx, 0x200ac28
mov dword [esp + 0x11c], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x130], eax
mov eax, 0x207834c
mov dword [esp + 0x24], 0x2024a34
mov dword [esp + 0x28], 0x2024858
mov dword [esp + 0x38], 0x2024a04
mov dword [esp + 0x3c], 0x2024a50
mov dword [esp + 0x40], 0x2024874
mov dword [esp + 0x50], 0x2024a20
mov dword [esp + 0xa8], 0x200a59c
mov dword [esp + 0xbc], 0x2082a90
mov dword [esp + 0xc0], 0x208299c
mov dword [esp + 0xd0], 0x2082a60
mov dword [esp + 0xd8], 0x200a548
mov dword [esp + 0xf0], 0x200a59c
mov dword [esp + 0x104], 0x2082aa8
mov dword [esp + 0x108], 0x20829b4
mov dword [esp + 0x118], 0x2082a78
mov dword [esp + 0x120], 0x200a548
mov dword [esp + 0x134], ecx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x140], ecx
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x180], ecx
mov dword [esp + 0x184], ecx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x190], ecx
mov ecx, 0x2078378
mov dword [esp + 0x160], eax
mov eax, 0x200abd4
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], ecx
lea ecx, [edx + edx*2]
mov edx, dword [esp + 0x8b4]
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], eax
lea eax, [edx + ecx*2]
push 0
lea ecx, [ebp + eax*2]
mov eax, dword [ecx*4 + 0x4a4d00]
push 0x23faff6
cmp ebx, 0x2d8
jne 0x4133aa
mov ecx, dword [edi + 0x60]
lea edi, [eax + ecx]
lea eax, [ebp + ebp*8]
lea edx, [edx + eax*2]
add edx, edx
add edx, edx
mov eax, dword [esp + edx + 0xac]
call fcn.004129a0
add esp, 8
push 0x100
push edi
mov ebx, eax
mov eax, dword [esp + 0x8bc]
push edi
lea ecx, [ebp + ebp*2]
lea ecx, [eax + ecx*2]
mov eax, dword [esp + edx + 0xe0]
mov ebp, dword [esp + ecx*4 + 0x30]
push 0
push 0x23fb008
call fcn.004129a0
add esp, 8
push eax
mov eax, dword [esp + edx + 0xcc]
push 1
push 0x23fb000
call fcn.004129a0
add esp, 8
push eax
mov edx, ebx
shr edx, 0x10
push edx
push ebx
push 0
push ebp
mov eax, 0x23faff0
call fcn.004129a0
add esp, 8
push eax
push ebp
push esi
push 0x4ab8d0
push esi
call fcn.004499de
mov eax, dword [0x52c424]
push 0x100
push eax
push 0x23fb024
mov edi, esi
call fcn.0040c290
add esp, 0x3c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x894
ret
lea ecx, [ebp + ebp*8]
lea edx, [edx + ecx*2]
add edx, edx
mov dword [esp + 0x1c], eax
add edx, edx
mov eax, dword [esp + edx + 0xac]
call fcn.004129a0
mov ecx, dword [esp + 0x8bc]
mov dword [esp + 0x20], eax
lea eax, [ebp + ebp*2]
lea eax, [ecx + eax*2]
mov ebp, dword [esp + eax*4 + 0x2c]
mov eax, dword [esp + 0x1c]
lea ecx, [ebx - 0x2d9]
imul ecx, ecx, 0xcc
add ecx, dword [edi + 0x64]
add esp, 8
add ecx, eax
push ecx
mov ecx, dword [edi + 0x60]
add ecx, eax
mov eax, dword [esp + edx + 0xd8]
push ecx
push 0
push 0x23fb008
call fcn.004129a0
add esp, 8
push eax
mov eax, dword [esp + edx + 0xc8]
push 1
push 0x23fb000
call fcn.004129a0
add esp, 8
push eax
mov eax, dword [esp + 0x28]
mov edx, eax
shr edx, 0x10
push edx
push eax
push 0
push ebp
mov eax, 0x23faff0
call fcn.004129a0
add esp, 8
push eax
push ebp
push esi
push 0x4ab9f8
push esi
call fcn.004499de
mov eax, dword [ebx*4 + 0x4ddea0]
push 0xcc
push eax
push 0x23fb020
mov edi, esi
call fcn.0040c290
add esp, 0x38
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x894
ret
cmp ebx, 0x2e5
jne 0x413495
mov ecx, dword [edx*4 + 0x4a4cf4]
push ecx
add edi, 0x6c
push edi
push esi
call fcn.004036a0
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x894
ret